import { createApp } from 'vue'
import App from './App.vue'
import router from '@/routers'
import store from './store'
import i18n from "./lang";
import { Toast } from 'vant';
import {showToast} from 'vant';
import "vant/es/toast/style";
import './assets/iconfont/iconfont.css'; 
import '@/assets/global.scss'
import './utils/rem.js';
import mitt from "mitt"
import { Lazyload } from 'vant';
import { Tabbar, TabbarItem } from 'vant';
const app = createApp(App)
app.config.globalProperties.$bus = mitt();
app.use(Tabbar);
app.use(TabbarItem);
app.use(i18n)
app.use(router)
app.use(Lazyload);
app.use(store)
app.mount('#app')
app.use(Toast)
app.directive('copy',{
	beforeMount(el,binding){
		//先给el元素挂上2个自定义属性，因为el是每个钩子函数都能访问到的
		//一个是$value用于存放要复制的文本，另一个$handle用于定义click事件回调函数（因为在其它钩子函数中还需要删除该事件）
		el.$value = binding.value;
		el.$handle=function(){
			if(!el.$value) return;//如果文本为空不做任何操作
			let textarea = document.createElement('textarea');
			textarea.value = el.$value;			
			textarea.style.cssText = 'opacity:0;position:fixed;left:-999px';//隐藏textarea
			document.body.appendChild(textarea);
			textarea.select();//让文本全部选中
			let copyText = document.execCommand('Copy');
			showToast('success')
			document.body.removeChild(textarea);//复制完成后删除创建的textarea
		}
		el.addEventListener('click',el.$handle);
	},
	updated(el,binding){
		el.$value = binding.value;//数据变化后重新赋值
	},
	unmounted(el){
		el.removeEventListener('click', el.$handle);//移除点击事件
	}
});

